Singular value decomposition (SVD) is a mathematical algorithm for dealing with sets of equations or matrices that are either singular or numerically very close to singular. SVD enables problems in a given matrix to be diagnosed, and provides a numerical answer as well. The importance of the SVD algorithm lies in its wide application, and core significance in a host of high performance signal processing algorithms. These include, for example, beamforming or direction finding, frequency estimation, clutter suppression, signal tracking, signal detection, data analysis, speech enhancement, and filter design.
The equation for singular value decomposition of X is represented as: X=USVT. Assume X is an m×n matrix of real-value data and rank r (the rank of a matrix is the number of linearly independent rows or columns), where m≧n, and therefore r≦n. U is an m×n matrix, S is an n×n diagonal matrix, and VT is also an n×n matrix. The columns of U are called the left singular vectors. The rows of VT contain the elements of the right singular vectors. The elements of S are only nonzero on the diagonal, and are called the singular values.
One way to calculate the SVD is to first determine VT and S by diagonalizing XTX (which equals VS2VT), and then determine U (which equals XVS−1), where the (r+1), . . . ,n columns of V for which sk=0 are ignored in the matrix multiplication. Choices for the remaining n-r singular vectors in the V or U matrices are then calculated using extension methods, such as the Gram-Schmidt orthogonalization process. Other conventional calculation techniques provide varying degrees of accuracy and speed in solving the SVD problem.
In any such conventional cases, solving the SVD problem is an iterative process that is time-limited by computation latency. To exacerbate this situation, higher latency scales with the size of the mantissa. In short, the SVD algorithm is computationally intensive, and this places a computational burden on real-time systems that employ it, or the algorithms that use it.
What is needed, therefore, are low-latency solutions to the singular value decomposition algorithm.